IE7 not digesting JSON: "parse error" [resolved]

Posted by Kenny Leu on Stack Overflow See other posts from Stack Overflow or by Kenny Leu
Published on 2010-03-13T18:12:34Z Indexed on 2010/03/15 9:49 UTC
Read the original article Hit count: 1117

Filed under:
|
|
|
|

While trying to GET a JSON, my callback function is NOT firing.

$.ajax({ type:"GET",
         dataType:'json',
         url: myLocalURL,
         data: myData,
         success:
           function(returned_data){alert('success');}
       });

The strangest part of this is that

  1. my JSON(s) validates on JSONlint
  2. this ONLY fails on IE7...it works in Safari, Chrome, and all versions of Firefox, (EDIT: and even in IE8). If I use 'error', then it reports "parseError"...even though it validates!

Is there anything that I'm missing? Does IE7 not process certain characters, data structures (my data doesn't have anything non-alphanumeric, but it DOES have nested JSONs)? I have used tons of other AJAX calls that all work (even in IE7), but with the exception of THIS call.

An example data return (EDIT: This is a structurally-complete example, meaning it is only missing a few second-tier fields, but follows this exact hierarchy)here is:

{"question":{
             "question_id":"19",
             "question_text":"testing",
             "other_crap":"none"
            },
  "timestamp":{
              "response":"answer",
              "response_text":"the text here"
              }
}

I am completely at a loss. Hopefully someone has some insight into what's going on...thank you!

EDIT Here's a copy of the SIMPLEST case of dummy data that I'm using...it still doesn't work in IE7.

{
  "question":{
         "question_id":"20",
         "question_text":"testing :",
         "adverse_party":"none",
         "juris":"California",
         "recipients":"Carl Chan"
         }
}

EDIT 2 I am starting to doubt that it is a JSON issue...but I have NO idea what else it could be. Here are some other resources that I've found that could be the cause, but they don't seem to work either: http://firelitdesign.blogspot.com/2009/07/jquerys-getjson.html (Django uses Unicode by default, so I don't think this is causing it)

Anybody have any other ideas?

ANSWER

I finally managed to figure it out...mostly via tedious trial-and-error. I want to thank everyone for their suggestions...as soon as I have 15 rep, I'll upvote you, I promise. :)

There was basically no way that you guys could have figured it out, because the issue turned out to be a strange bug between IE7 and Django (my research didn't bring up any similar issues). We were basically using Django template language to generate our JSON...and in the midst of this particular JSON, we were using custom template tags:

{% load customfilter %}
{ "question":{ "question_id":"{{question.id}}",
               "question_text":"{{question.question_text|customfilterhere}}"
             }
}

As soon as I deleted anything related to the customfilter, IE7 was able to parse the JSON perfectly! We still don't have a workaround yet, but at least we now know what's causing it.

Has anyone seen any similar issues? Once again, thank you everyone for your contributions.

© Stack Overflow or respective owner

Related posts about jQuery

Related posts about jquery-ajax